#ifndef COUNTER_H
#define COUNTER_H

#include <QGraphicsItem>

class Player;
class QMenu;
class QAction;

class AbstractCounter : public QObject, public QGraphicsItem {
	Q_OBJECT
protected:
	Player *player;
	int id;
	QString name;
	int value;
	bool hovered;
	
	void mousePressEvent(QGraphicsSceneMouseEvent *event);
	void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
	void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
private:
	QAction *aSet, *aDec, *aInc;
	QMenu *menu;
	bool dialogSemaphore, deleteAfterDialog;
	bool shownInCounterArea;
private slots:
	void incrementCounter();
	void setCounter();
public:
	AbstractCounter(Player *_player, int _id, const QString &_name, bool _shownInCounterArea, int _value, QGraphicsItem *parent = 0);
	~AbstractCounter();
	
	QMenu *getMenu() const { return menu; }
	void retranslateUi();
	
	int getId() const { return id; }
	QString getName() const { return name; }
	bool getShownInCounterArea() const { return shownInCounterArea; }
	int getValue() const { return value; }
	void setValue(int _value);
	void delCounter();
	
	void setShortcutsActive();
	void setShortcutsInactive();
};

#endif
